/*
 * Author: Kishore Reddy
 * Url: http://commonlibrarynet.codeplex.com/
 * Title: CommonLibrary.NET
 * Copyright: � 2009 Kishore Reddy
 * License: LGPL License
 * LicenseUrl: http://commonlibrarynet.codeplex.com/license
 * Description: A C# based .NET 3.5 Open-Source collection of reusable components.
 * Usage: Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
using System;
using System.Collections.Generic;
using System.Text;
using ComLib;

namespace ComLib.Scaffolding
{
    public class ScaffoldContext : ActionContext
    {
        /// <summary>
        /// The id of the parent control that will contain the autogenerated
        /// UI controls representing the data for any Business Entity.
        /// </summary>
        public string ParentControlId;


        /// <summary>
        /// The fully-qualified name of the business entity for which to build
        /// a UI for.
        /// </summary>
        public string EntityName;


        /// <summary>
        /// The id of the entity to update/delete.
        /// </summary>
        public string EntityId;


        /// <summary>
        /// List of key/value pairs corresponding the properties on the Entity.
        /// </summary>
        public IList<KeyValuePair<string, string>> PropValues;


        /// <summary>
        /// Initialize the scaffold context.
        /// </summary>
        /// <param name="errors"></param>
        /// <param name="messages"></param>
        /// <param name="entityName"></param>
        /// <param name="parentControlId"></param>
        public ScaffoldContext(IValidationResults errors, IStatusResults messages, string entityName, string entityId, string parentControlId)
            : base(errors, messages)
        {
            EntityName = entityName;
            ParentControlId = parentControlId;
            EntityId = entityId;
        }
    }
}
